import Vue from 'vue'

import 'normalize.css/normalize.css' // 引入 CSS 重置样式

import ElementUI from 'element-ui' // 引入 ElementUI 组件库
import 'element-ui/lib/theme-chalk/index.css' // 引入 ElementUI 组件库的主题 CSS


import '@/styles/index.scss' // 引入全局样式

import App from './App' // 引入应用程序的主组件
import store from './store' // 引入应用程序的状态管理
import router from './router' // 引入应用程序的路由

import '@/icons' // 引入图标
import '@/permission' // 引入权限控制

// 目前，在生产环境中将使用 MockJs，请在上线前将其删除 ! ! !


if (process.env.NODE_ENV === 'production') {
  const { mockXHR } = require('../mock')
  mockXHR()
}

Vue.use(ElementUI)

Vue.config.productionTip = false

// // 全局封装API
import API from '@/api';
Vue.prototype.$API= API;

router.onError((error) => {
  const pattern = /Loading chunk (\d)+ failed/g;
  const isChunkLoadFailed = error.message.match(pattern);
  const targetPath = router.history.pending.fullPath;
  if (isChunkLoadFailed) {
    router.replace(targetPath);
  }
})



new Vue({
  el: '#app', // 将 Vue 挂载到 id 为 app 的 DOM 元素上
  router, // 引入应用程序的路由
  store, // 引入应用程序的状态管理
  render: h => h(App) // 渲染应用程序的主组件
})